<?php

namespace app\admin\model\sum;

use app\admin\model\sum\Common;
use app\admin\model\sum\Config as SumConfig;

class Task extends Common
{
    // 表名
    protected $name = 'sum_task';

    // 追加属性
    protected $append = [
        'hook_text',
        'type_text',
        'status_text'
    ];
    // 需要多语言的字段
    protected $lang_field = [
        'title',
    ];
    public function typeList()
    {
        return [
            'first' => '首次',
            'day' => '每日',
        ];
    }

    // 事件列表
    public function hookList()
    {
        return [
            'task_video_watch'       => '观看视频(3集)',
            'task_video_share'       => '分享视频',
            'task_video_comment'     => '评论视频',
            'task_video_like'        => '点赞视频',
            'task_performer_gift'    => '送礼物',
            'task_login'    => '每日登录',
//            'task_performer_rank'    => '进榜单前十',
//            'task_signin_total'      => '累计签到365天',
        ];
    }

    /**
     * 事件获取器
     *
     * @param string $value
     * @param array $data
     * @return string
     */
    public function getHookTextAttr($value, $data)
    {
        $value = $value ?: ($data['hook'] ?? null);

        $list = $this->hookList();
        return isset($list[$value]) ? $list[$value] : '';
    }

    public function getLangDataAttr($value, $data)
    {
        $lang_field=$this->lang_field;
        $lang_option = SumConfig::getConfigs('language.option', false);
        $config_arr=[];
        foreach ($lang_option as $ov){
            foreach ($lang_field as $fv){
                $config_arr[$ov['slug']][$fv]='';
            }
        }
//        return $config_arr;
        $lang_data_arr=[];
        if($value){
            $lang_data_arr=json_decode($value,true);
        }
//        return $lang_data_arr;
        //这里 不能用 array_merge
        $return=array_replace_recursive($config_arr,$lang_data_arr);
        return $return;
    }
    protected function setLangDataAttr($value)
    {

        return is_array($value)?json_encode($value):$value;
    }

}
